#pragma once

#include "SparkEditor.h"

class SparkEditorPanelView : public wxPanel
{
public:
	SparkEditorPanelView();

	SparkEditorPanelView(wxWindow *parent,
		wxWindowID winid = wxID_ANY,
		const wxPoint& pos = wxDefaultPosition,
		const wxSize& size = wxDefaultSize,
		long style = wxTAB_TRAVERSAL | wxNO_BORDER,
		const wxString& name = wxPanelNameStr);

	~SparkEditorPanelView();

	virtual void ConnectEvent(void);

private:
	/** Notify Ogre on a window resize event
	@param event the rezising event. */
	void SceneViewOnSize(wxSizeEvent& event);

	/** Render timer event function
	@param event the timer event. */
	void SceneViewOnPaint(wxPaintEvent & event);

	void SceneViewOnIdle(wxIdleEvent& event);

	void SceneViewOnCreate(wxWindowCreateEvent& event);

	HDC			hDC;										// Private GDI Device Context
	HGLRC		hRC;										// Permanent Rendering Context


protected:
	/// The mouse dragging event
	/** This event function moves the camera in dependency of mouse coordinates,
	while the mouse is dragged over the render window.
	@param event a mouse event. */
	void MouseDragged(wxMouseEvent& msevent);
	/// The scroll wheel event
	/** This event function is used to zoom into or out of the scene.
	@param event a mouse event. */
	void scrollWheel(wxMouseEvent& msevent);

};

